#include <Timer.h>

configuration AppLAppC {
}

implementation {
components AppLC, MainC, LedsC;
components ActiveMessageC;
components new AMSenderC(AM_DATAMESSAGE);
components new AMReceiverC(AM_DATAMESSAGE);
components new AMSenderC(AM_ALARMMESSAGE) as AlarmSenderC;
components new AMReceiverC(AM_ALARMMESSAGE) as AlarmReceiverC;
components SampleWindowC, AggregatedSampleC;
components ShiftC;
components new VoltageC();
components new SensirionSht11C();
components new HamamatsuS1087ParC();
components new HamamatsuS10871TsrC();
components new TimerMilliC() as Timer0;
components new TimerMilliC() as Timer1;
components new TimerMilliC() as Timer2;
components new TimerMilliC() as Timer3;

AppLC -> MainC.Boot;
AppLC.Leds -> LedsC;
AppLC.Timer0 -> Timer0;
AppLC.Timer1 -> Timer1;
AppLC.Timer2 -> Timer2;
AppLC.Timer3 -> Timer3;
AppLC.Packet -> AMSenderC;
AppLC.AMPacket -> AMSenderC;
AppLC.AMControl -> ActiveMessageC;
AppLC.AMSend -> AMSenderC;
AppLC.Receive -> AMReceiverC;
AppLC.LowPowerListening -> ActiveMessageC;
AppLC.AlarmPacket -> AlarmSenderC;
AppLC.AlarmAMPacket -> AlarmSenderC;
AppLC.AlarmSender -> AlarmSenderC;
AppLC.AlarmReceiver -> AlarmReceiverC;

AppLC.SampleWindow -> SampleWindowC;
AppLC.AggregatedSample -> AggregatedSampleC;
AppLC.Shift -> ShiftC;

AppLC.VoltageSensor     -> VoltageC;
AppLC.TemperatureSensor -> SensirionSht11C.Temperature;
AppLC.HumiditySensor    -> SensirionSht11C.Humidity;
AppLC.ParSensor         -> HamamatsuS1087ParC;
AppLC.TsrSensor         -> HamamatsuS10871TsrC;
}
